﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using KamRemakeRemake.Common.BaseClasses;

namespace KamRemakeRemake.GameObjects.MapObjects {
    public class TileTypeList : BaseEnumList<TileType> {
        public TileTypeList(params TileType[] tileTypes)
            : base(tileTypes) { }

        public static TileTypeList Passable() {
            var result = new TileTypeList(
                TileType.Grass,
                TileType.Sand,
                TileType.Ice,
                TileType.BlueShit,
                TileType.Bridge
            );
            return result;
        }

        public static TileTypeList Impassable() {
            var result = new TileTypeList(
                TileType.GoldEmpty,
                TileType.IronEmpty,
                TileType.CoalEmpty,
                TileType.Water,
                TileType.Gold,
                TileType.Iron,
                TileType.Coal,
                TileType.Stone
            );
            return result;
        }

        public static TileTypeList Minable() {
            var result = new TileTypeList(
                TileType.Gold,
                TileType.Iron,
                TileType.Coal,
                TileType.Stone
            );
            return result;
        }

        public override TileType[] GetKnownValues() {
            TileType[] known = new[] 
            { 
                TileType.Grass,
                TileType.Sand,
                TileType.Ice,
                TileType.BlueShit,
                TileType.Bridge,
                TileType.GoldEmpty,
                TileType.IronEmpty,
                TileType.CoalEmpty,
                TileType.Water, 
                TileType.Gold,
                TileType.Iron,
                TileType.Coal,
                TileType.Stone
            };
            return known;
        }
    }
}
